🎖️GitЯра🎖️
.github/workflows/promote.yml 5e44cbd3a902f4152905e1d9558db0e92efe193b (5e44cbd3) Text, 6.21 KB
Tff7b72nameTb4b4b4: Ta5d6ffPromoteTa5d6ff Ta5d6ffRelease
Tff7b72onTb4b4b4:
Tff7b72workflow_callTb4b4b4:
Tff7b72inputsTb4b4b4:
Tff7b72base_versionTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffbaseTe6edf3 Ta5d6ffversionTe6edf3 Ta5d6ffforTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffreleaseTe6edf3 Ta5d6ff(e.g.,Te6edf3 Ta5d6ff2.3.0)Ta5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72tag_nameTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6fftagTe6edf3 Ta5d6ffthatTe6edf3 Ta5d6fftriggeredTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffreleaseTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72release_nameTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffdesiredTe6edf3 Ta5d6ffnameTe6edf3 Ta5d6ffforTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffGitHubTe6edf3 Ta5d6ffreleaseTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72final_tagTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6fffinalTe6edf3 Ta5d6fftagTe6edf3 Ta5d6ffforTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffreleaseTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72commit_shaTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffcommitTe6edf3 Ta5d6ffSHATe6edf3 Ta5d6fftoTe6edf3 Ta5d6fftagTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72channelTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffchannelTe6edf3 Ta5d6fftoTe6edf3 Ta5d6ffpromoteTe6edf3 Ta5d6fftoTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72from_channelTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffchannelTe6edf3 Ta5d6fftoTe6edf3 Ta5d6ffpromoteTe6edf3 Ta5d6fffromTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72secretsTb4b4b4:
Tff7b72GSERVICESTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72KEYSTORETb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72KEYSTORE_FILENAMETb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72KEYSTORE_PROPERTIESTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72DATADOG_APPLICATION_IDTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72DATADOG_CLIENT_TOKENTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72GOOGLE_MAPS_API_KEYTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72GOOGLE_PLAY_JSON_KEYTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72GRADLE_ENCRYPTION_KEYTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72DISCORD_WEBHOOK_ANDROIDTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72concurrencyTb4b4b4:
Tff7b72groupTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.workflowTa5d6ff Ta5d6ff}}-${{Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72cancel-in-progressTb4b4b4: Ta5d6fftrue
Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffwrite
Tff7b72pull-requestsTb4b4b4: Ta5d6ffread
Tff7b72id-tokenTb4b4b4: Ta5d6ffwrite
Tff7b72attestationsTb4b4b4: Ta5d6ffwrite
Tff7b72jobsTb4b4b4:
Tff7b72prepare-build-infoTb4b4b4:
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72outputsTb4b4b4:
Tff7b72APP_VERSION_NAMETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.prep_version.outputs.APP_VERSION_NAMETa5d6ff Ta5d6ff}}
Tff7b72APP_VERSION_CODETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.calculate_version_code.outputs.versionCodeTa5d6ff Ta5d6ff}}
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckoutTa5d6ff Ta5d6ffcode
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v6
Tff7b72withTb4b4b4:
Tff7b72refTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.commit_shaTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72fetch-depthTb4b4b4: Ta5d6ff0
Tff7b72submodulesTb4b4b4: Ta5d6ff'Ta5d6ffrecursiveTa5d6ff'
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffPrepTa5d6ff Ta5d6ffAPP_VERSION_NAME
Tff7b72idTb4b4b4: Ta5d6ffprep_version
Tff7b72envTb4b4b4:
Tff7b72INPUT_TAG_NAMETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72VERSION_NAME=$(echo $INPUT_TAG_NAME | sed 's/-.*//' | sed 's/v//')
Tff7b72echo "APP_VERSION_NAME=$VERSION_NAME" >> $GITHUB_OUTPUT
Tff7b72echo "Parsed Version: $VERSION_NAME"
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffExtractTa5d6ff Ta5d6ffVERSION_CODE_OFFSETTa5d6ff Ta5d6fffromTa5d6ff Ta5d6ffconfig.properties
Tff7b72idTb4b4b4: Ta5d6ffget_version_code_offset
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72OFFSET=$(grep '^VERSION_CODE_OFFSET=' config.properties | cut -d'=' -f2)
Tff7b72echo "VERSION_CODE_OFFSET=$OFFSET" >> $GITHUB_OUTPUT
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCalculateTa5d6ff Ta5d6ffVersionTa5d6ff Ta5d6ffCodeTa5d6ff Ta5d6fffromTa5d6ff Ta5d6ffGitTa5d6ff Ta5d6ffCommitTa5d6ff Ta5d6ffCount
Tff7b72idTb4b4b4: Ta5d6ffcalculate_version_code
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72COMMIT_COUNT=$(git rev-list --count HEAD)
Tff7b72OFFSET=${{ steps.get_version_code_offset.outputs.VERSION_CODE_OFFSET }}
Tff7b72VERSION_CODE=$((COMMIT_COUNT + OFFSET))
Tff7b72echo "versionCode=$VERSION_CODE" >> $GITHUB_OUTPUT
Tff7b72shellTb4b4b4: Ta5d6ffbash
Tff7b72promote-releaseTb4b4b4:
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72environmentTb4b4b4: Ta5d6ffRelease
Tff7b72needsTb4b4b4: Tb4b4b4[ Te6edf3prepare-build-info Tb4b4b4]
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffPromoteTa5d6ff Ta5d6fftoTa5d6ff Ta5d6ffnextTa5d6ff Ta5d6ffchannel
Tff7b72usesTb4b4b4: Ta5d6ffkevin-david/promote-play-release@v1.2.0
Tff7b72withTb4b4b4:
Tff7b72service-account-json-rawTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsecrets.GOOGLE_PLAY_JSON_KEYTa5d6ff Ta5d6ff}}
Tff7b72package-nameTb4b4b4: Ta5d6ff'Ta5d6ffcom.geeksville.meshTa5d6ff'
Tff7b72from-trackTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.from_channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'closed'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'NewAlpha'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff(inputs.from_channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'open'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'beta'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff'internal')Ta5d6ff Ta5d6ff}}
Tff7b72to-trackTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'closed'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'NewAlpha'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff(inputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'open'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'beta'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff'production')Ta5d6ff Ta5d6ff}}
Tff7b72user-fractionTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ff(inputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'production'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'0.1')Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff(inputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'open'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'0.5')Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff'1.0'Ta5d6ff Ta5d6ff}}
Tff7b72update-github-releaseTb4b4b4:
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72needsTb4b4b4: Tb4b4b4[ Te6edf3prepare-build-infoTb4b4b4, Te6edf3promote-release Tb4b4b4]
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckoutTa5d6ff Ta5d6ffcode
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v6
Tff7b72withTb4b4b4:
Tff7b72refTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.commit_shaTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72fetch-depthTb4b4b4: Ta5d6ff0
Tff7b72submodulesTb4b4b4: Ta5d6ff'Ta5d6ffrecursiveTa5d6ff'
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffPushTa5d6ff Ta5d6ffGitTa5d6ff Ta5d6ffTagTa5d6ff Ta5d6ffonTa5d6ff Ta5d6ffSuccess
Tff7b72ifTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.commit_shaTa5d6ff Ta5d6ff!=Ta5d6ff Ta5d6ff''Ta5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72git tag ${{ inputs.final_tag }} ${{ inputs.commit_sha }}
Tff7b72git push origin ${{ inputs.final_tag }}
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffUpdateTa5d6ff Ta5d6ffGitHubTa5d6ff Ta5d6ffReleaseTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffghTa5d6ff Ta5d6ffCLI
Tff7b72envTb4b4b4:
Tff7b72GH_TOKENTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.tokenTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72gh release edit ${{ inputs.tag_name }} \
Tff7b72--tag ${{ inputs.final_tag }} \
Tff7b72--title "${{ inputs.release_name }} (${{ needs.prepare-build-info.outputs.APP_VERSION_CODE }})" \
Tff7b72--prerelease=${{ inputs.channel != 'production' }}
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffNotifyTa5d6ff Ta5d6ffDiscord
Tff7b72ifTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.channelTa5d6ff Ta5d6ff!=Ta5d6ff Ta5d6ff'internal'Ta5d6ff Ta5d6ff}}
Tff7b72envTb4b4b4:
Tff7b72DISCORD_WEBHOOKTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsecrets.DISCORD_WEBHOOK_ANDROIDTa5d6ff Ta5d6ff}}
Tff7b72VERSIONTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.final_tagTa5d6ff Ta5d6ff}}
Tff7b72CHANNELTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.channelTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72if [[ -z "$DISCORD_WEBHOOK" ]]; then
Tff7b72echo "No Discord webhook provided. Skipping notification."
Tff7b72exit 0
Tff7b72fi
Tff7b72# Determine Track Name for Display
Tff7b72if [ "$CHANNEL" == "closed" ]; then TRACK="Alpha (Closed)"; fi
Tff7b72if [ "$CHANNEL" == "open" ]; then TRACK="Beta (Open)"; fi
Tff7b72if [ "$CHANNEL" == "production" ]; then TRACK="Production"; fi
Tff7b72# Construct JSON Payload
Tff7b72PAYLOAD=$(cat <<EOF
Tff7b72{
Tff7b72"content": null,
Tff7b72"embeds": [
Tff7b72{
Tff7b72"title": "🚀 New Android Release: $VERSION",
Tff7b72"description": "A new build has been promoted to the **$TRACK** track.",
Tff7b72"color": 5763719,
Tff7b72"fields": [
Tff7b72{
Tff7b72"name": "Track",
Tff7b72"value": "$TRACK",
Tff7b72"inline": true
Tff7b72},
Tff7b72{
Tff7b72"name": "Version",
Tff7b72"value": "$VERSION",
Tff7b72"inline": true
Tff7b72}
Tff7b72],
Tff7b72"url": "https://github.com/meshtastic/Meshtastic-Android/releases/tag/$VERSION"
Tff7b72}
Tff7b72]
Tff7b72}
Tff7b72EOF
Tff7b72)
Tff7b72curl -H "Content-Type: application/json" -d "$PAYLOAD" "$DISCORD_WEBHOOK"
Served by rngit 1.5.2 - Generated in 0.06s